#ifndef LIST_H_INCLUDED
#define LIST_H_INCLUDED
#include <ostream>

template <typename T>
class List{
public:
    List(){}
    List(const List<T>& list){}
    virtual ~List(){};

    virtual void Clear() = 0;
    virtual bool IsEmpty() = 0;
    virtual bool Append(const T& value) = 0;
    virtual bool Insert(const int position, const T& value) = 0;
    virtual bool Delete(const int position) = 0;
    virtual bool GetValue(const int position, T& value) = 0;
    virtual bool SetValue(const int position, const T& value) = 0;
    virtual bool GetPosition(int & position, const T& value) = 0;
    virtual void DumpList(std::ostream& os)=0;
};

#endif // LIST_H_INCLUDED
